Excel和CSV类型数据文件自动录入重构封装
GitHub链接
jar包和依赖包链接:https://pan.baidu.com/s/1QsA6wzu1ofIBbXQbXm9TAw 密码:tdop
依赖包
- java8
- dom4j-1.6.1.jar
- poi-3.7-20101029.jar (POI Excel文件处理)
- poi-ooxml-3.7-20101029.jar
- poi-ooxml-schemas-3.7-20101029.jar
- super-csv-2.4.0.jar (csv文件类型)
- xmlbeans-2.3.0.jar
实体类中
在实体类中字段上方@ExportColumn注解指定需要通过数据文件录入字段
- @ExportColumn注解的value值为该字段对应的数据文件中对应的中文名 
- 下方代码中,@Data注解为lombok的注解, 
 也可不用 不用后,需加入无参构造 setter 和 getter
 最好重写toString、hashcode、equals方法,使用lombok的Data注解这些事情可省去,其自动完成
| 1 | 
 | 
客户端使用
Excel文件类型
xlsx 和 xls 均可
主类 ExcelScanner
直接调用ExcelScanner类中的静态方法scanAndSave
| 1 | /** | 
指定读取Excel工作表号的数据源的信息存入数据库中1
2
3
4
5
6
7
8
9
10
11 /**
 * 读取Excel数据源的信息存入数据库中
 * @param filePath Excel文件路径
 * @param entityClazz 具体实体类class对象
 * @param dao 存入数据库的dao接口
 * @param sheetAt excel文件中的工作表号
 * @return
 * @throws ReflectiveOperationException
 */
public static <T>  ResultMap scanAndSave(String filePath, Class<T> entityClazz, SaveListDao<T> dao, int sheetAt) 
  throws ReflectiveOperationException
| 1 | 
 | 
csv文件类型
主类 CsvScanner
直接调用CsvScanner类中的静态方法scanAndSave1
2
3
4
5
6
7
8
9
10  /**
	 *
	 * @param filePath 文件绝对路径
	 * @param entityClazz 实体类class对象
	 * @param dao 导入数据接口
	 * @param cellProcessor csv文件单元处理器
	 * @param <T>
	 * @return ResultMap 结果Map extends HashMa
	 */
public static <T>  ResultMap scanAndSave(String filePath, Class<T> entityClazz, SaveListDao<T> dao, CellProcessor[] cellProcessor)
| 1 | 
 | 
效果
错误提示
- 文件中缺少指定字段 - 1 
 2- msg---未检测到字段名:[学号, 年龄, 姓名],请核对 
 code---500
- 文件后缀名错误 文件类型不匹配 
正确提示
| 1 | msg---本次读取了4条数据,共导入了4条,相差0条未导入,请核对! |